-- @Author: 作者QQ2308873645
-- @Date:   2021-11-27 13:12:31
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2022-07-19 08:41:03
function 任务控制类:设置鬼王任务(id)------------------------------完成--------------------
 if 取队伍符合等级(id,100)==false and DebugMode == false then
    广播队伍消息(id,7,"#Y/队伍平均等级达到100级才可领取此任务")
 else
    self.检查通过=""
    self.检查次数=50
    if 玩家数据[id].队伍==0 then
      if 角色处理类:GetTaskID(玩家数据[id],"鬼王")~=0 then
      self.检查通过=玩家数据[id].角色.名称
      end
       if  活动数据.鬼王[id]==nil then
          活动数据.鬼王[id] = 100
       else
         self.检查次数 = 活动数据.鬼王[id]
        end
    else
      for n=1,#队伍数据[玩家数据[id].队伍].队员数据 do
        if 角色处理类:GetTaskID(玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]],"鬼王")~=0 then
        self.检查通过=玩家数据[队伍数据[玩家数据[id].队伍].队员数据[n]].角色.名称..","..self.检查通过
        end
         if  活动数据.鬼王[队伍数据[玩家数据[id].队伍].队员数据[n]]==nil then
           	活动数据.鬼王[队伍数据[玩家数据[id].队伍].队员数据[n]] = 100
         else
           	self.检查次数 = 活动数据.鬼王[队伍数据[玩家数据[id].队伍].队员数据[n]]
         end
      end
    end
    if self.检查通过~="" then
    广播队伍消息(id,7,"#Y/"..self.检查通过.."已经领取过此任务了")
    elseif self.检查次数 <=0 then
    	    广播队伍消息(id,7,"#Y/队伍中有人鬼王次数已经达到上限无法在进行鬼王任务")
    else
      -- if 角色处理类:GetTaskID(玩家数据[id],"法宝") == 0 and math.random(100)<=1 and 玩家数据[id].角色.等级>=60 then
      --   玩家数据[id].法宝 =true
      --   发送数据(玩家数据[id].连接id,20,{"黑无常","黑无常","恭喜你激活了一个法宝任务,是否领取该任务呢?",{"领取法宝任务","我不需要法宝"}})
      -- else
      self:添加鬼王任务(id)
      end
    end
 end
-- end
function 任务控制类:添加鬼王任务(id)----------------------------完成
  local 抓鬼名称1={"子时","丑时","寅时","卵时","辰时","巳时","午时","未时","申时","酉时","戌时","亥时"}
  local 抓鬼名称2={"一刻","二刻","三刻","四刻","五刻","六刻",}
  local 抓鬼名称3 = {"鬼王"}
 local 抓鬼地图={1233,1228,1229,1040,1041,1501,1140,1091,1070,1512,1131,1140}
 local 临时id=tonumber(玩家数据[id].id.."4"..os.time())
 local 抓鬼地图编号=抓鬼地图[math.random(1,#抓鬼地图)]
 local 临时坐标=地图处理类:Randomloadtion(抓鬼地图编号)
 local 抓鬼造型={"幽灵","鬼将","夜罗刹","吸血鬼","炎魔神",}
 local 临时造型=抓鬼造型[math.random(1,#抓鬼造型)]
 local 临时名称=抓鬼名称1[math.random(#抓鬼名称1)]..抓鬼名称2[math.random(#抓鬼名称2)]..抓鬼名称3[math.random(#抓鬼名称3)]
 任务数据[临时id]={
 类型="鬼王"
 ,id=id
 ,起始=os.time()
 ,结束=2400
 ,任务id=临时id
 ,地图编号=抓鬼地图编号
 ,地图名称=MapData[抓鬼地图编号].名称
 ,名称=临时名称
 ,造型=临时造型
 ,方向=math.random(0,3)
 ,坐标=临时坐标
 ,战斗=false
 ,数字id={}
 ,客户id={}
 }
 self.任务id组={}
  if 玩家数据[id].队伍==0 then
  self.任务id组[#self.任务id组+1]=id
  else
    for n=1,#队伍数据[玩家数据[id].队伍].队员数据 do
    self.任务id组[#self.任务id组+1]=队伍数据[玩家数据[id].队伍].队员数据[n]
    end
  end
  for n=1,#self.任务id组 do
   self.任务临时id1=角色处理类:生成任务id(玩家数据[self.任务id组[n]])
   玩家数据[self.任务id组[n]].角色.任务数据[self.任务临时id1]=临时id
   任务数据[临时id].数字id[#任务数据[临时id].数字id+1]=玩家数据[self.任务id组[n]].id
   任务数据[临时id].客户id[#任务数据[临时id].客户id+1]=self.任务id组[n]
   活动数据.鬼王[self.任务id组[n]]=活动数据.鬼王[self.任务id组[n]]-1
  end
  地图处理类:添加单位(任务数据[临时id])
  发送数据(玩家数据[id].连接id,20,{"黑无常","黑无常",[[ #W/近日有#Y/]]..任务数据[临时id].名称.."#W/正在#Y/"..任务数据[临时id].地图名称.."（"..math.floor(任务数据[临时id].坐标.x)..","..math.floor(任务数据[临时id].坐标.y)..")#W/处作恶，请立即前往降服。"})
  self:刷新追踪任务信息(id)
 end

function 任务控制类:完成鬼王任务(id组,任务id)-------------------

  for n=1,#id组 do
    if 玩家数据[id组[n]]~=nil and 活动数据.鬼王[id组[n]] then
      self.符合抓鬼id=false
      for i=1,#任务数据[任务id].数字id do
        if 玩家数据[id组[n]].id==任务数据[任务id].数字id[i] then
        self.符合抓鬼id=true
        end
      end
      if self.符合抓鬼id then
        角色处理类:取消任务(玩家数据[id组[n]],任务id)
        self.抓鬼奖励参数=玩家数据[id组[n]].角色.鬼王次数*0.2+1
        self.抓鬼奖励等级=玩家数据[id组[n]].角色.等级
        self.等级误差=取经验差(任务数据[任务id].平均等级,self.抓鬼奖励等级)
        self.抓鬼奖励经验=math.floor(self.抓鬼奖励等级*self.抓鬼奖励等级*32*self.抓鬼奖励参数*self.等级误差)
        self.抓鬼奖励银子=math.floor((self.抓鬼奖励等级*self.抓鬼奖励等级+math.random(2000,2500))*self.抓鬼奖励参数*4)
        角色处理类:添加经验(玩家数据[id组[n]],self.抓鬼奖励经验,"鬼王")
        角色处理类:添加银子(玩家数据[id组[n]],self.抓鬼奖励银子,"鬼王")
        角色处理类:添加活跃度(玩家数据[id组[n]],1)
        if 活动进度[id组[n]] == nil then
          活动进度[id组[n]]={师门=0,抓鬼=0,鬼王=0,门派闯关=0,皇宫飞贼=0,知了=0,通天塔=0,车迟斗法=0,乌鸡国=0,高级藏宝图=0,玲珑宝图=0,新手泡泡=0,夏日炎炎=0,年兽活动=0,地煞活动=0,天罡神器=0,任务链=0,轮回镜=0}
        end
        if 活动进度[id组[n]].鬼王 < 200 then
         活动进度[id组[n]].鬼王 = 活动进度[id组[n]].鬼王 + 1
        end
        if 玩家数据[id组[n]].召唤兽.数据.参战~=0 then
        self.抓鬼奖励等级=玩家数据[id组[n]].召唤兽.数据[玩家数据[id组[n]].召唤兽.数据.参战].等级
        self.抓鬼奖励经验 = math.floor(self.抓鬼奖励等级 * self.抓鬼奖励等级 * 120 * self.抓鬼奖励参数)
        玩家数据[id组[n]].召唤兽:添加经验(self.抓鬼奖励经验,id组[n],玩家数据[id组[n]].召唤兽.数据.参战,2)
        end
        if 玩家数据[id组[n]].成就系统.鬼王 ~= nil then
      玩家数据[id组[n]].成就系统.鬼王.次数 = 玩家数据[id组[n]].成就系统.鬼王.次数 + 1
    else
    玩家数据[id组[n]].成就系统.鬼王 = {次数=0,奖励=0,等级=0}
    end
        if 玩家数据[id组[n]].角色.鬼王次数==10 then
          local 随机奖励 = math.random(100)
            玩家数据[id组[n]].角色.鬼王次数=1
            if 随机奖励<=80 then
               道具处理类:给予道具(id组[n],"吸附石")
            else
               道具处理类:给予道具(id组[n],"法宝任务书")
            end
            道具处理类:系统仓库处理(id组[n])
        else
        玩家数据[id组[n]].角色.鬼王次数=玩家数据[id组[n]].角色.鬼王次数+1
        end
        发送数据( 玩家数据[id组[n]].连接id,7,"#Y/你当前在抓鬼任务中还可获得#R/".. 活动数据.鬼王[id组[n]].."#Y/次奖励")
     end
    end
  end
 地图处理类:移除单位(任务数据[任务id].地图编号,任务id)
 任务数据[任务id]=nil
 end